const sessionCache = {
  set (key, value) {
    if (!sessionStorage) {
      return
    }
    if (key != null && value != null) {
      sessionStorage.setItem(key, value)
    }
  },
  get (key) {
    if (!sessionStorage) {
      return null
    }
    if (key == null) {
      return null
    }
    return sessionStorage.getItem(key)
  },
  setJSON (key, jsonValue) {
    if (jsonValue != null) {
      this.set(key, JSON.stringify(jsonValue))
    }
  },
  getJSON (key) {
    const value = this.get(key)
    if (value != null) {
      return JSON.parse(value)
    }
  },
  remove (key) {
    sessionStorage.removeItem(key);
  }
}
const localCache = {
  set (key, value) {
    if (!localStorage) {
      return
    }
    if (key != null && value != null) {
      localStorage.setItem(key, value)
    }
  },
  get (key) {
    if (!localStorage) {
      return null
    }
    if (key == null) {
      return null
    }
    return localStorage.getItem(key)
  },
  setJSON (key, jsonValue) {
    if (jsonValue != null) {
      this.set(key, JSON.stringify(jsonValue))
    }
  },
  getJSON (key) {
    const value = this.get(key)
    if (value != null) {
      return JSON.parse(value)
    }
  },
  remove (key) {
    localStorage.removeItem(key);
  }
}
/**
 // local 普通值
 this.$cache.local.set('key', 'local value')
 console.log(this.$cache.local.get('key')) // 输出'local value'

 // session 普通值
 this.$cache.session.set('key', 'session value')
 console.log(this.$cache.session.get('key')) // 输出'session value'

 // local JSON值
 this.$cache.local.setJSON('jsonKey', { localProp: 1 })
 console.log(this.$cache.local.getJSON('jsonKey')) // 输出'{localProp: 1}'

 // session JSON值
 this.$cache.session.setJSON('jsonKey', { sessionProp: 1 })
 console.log(this.$cache.session.getJSON('jsonKey')) // 输出'{sessionProp: 1}'

 // 删除值
 this.$cache.local.remove('key')
 this.$cache.session.remove('key')
 */
export default {
  /**
   * 会话级缓存
   */
  session: sessionCache,
  /**
   * 本地缓存
   */
  local: localCache
}
